/*******************************************************************************
 * Copyright (c) 2000, 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package com.architexa.org.eclipse.gef.handles;

import com.architexa.org.eclipse.gef.DragTracker;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;


/**
 * A handle for bendpoints on a connection.
 */
public class BendpointHandle
	extends ConnectionHandle
	implements PropertyChangeListener
{
	
/*
 * @TODO:Pratik  No need to implement PropertyChangeListener or override propertyChange()
 */

private int index;

/**
 * By default, <code>null</code> is returned for the DragTracker.
 * @return returns null by default
 */
protected DragTracker createDragTracker() {
	return null;
}

/**
 * Returns the index. This could mean different things for different subclasses. It could
 * be the index of the point the handle belongs to. Or it could be the index of the handle
 * itself. For {@link BendpointCreationHandle}s and {@link BendpointMoveHandle}s, this
 * is the index of the handle itself, where these two types of handles are indexed
 * separately. For example, if you have one bendpoint, you will have 2 creation handles,
 * indexed as 0 and 1, and 1 move handle, indexed as 0.
 * @return the index
 */
public int getIndex() {
	return index;
}

/**
 * Revalidates this handle when the connection's points change.
 * @param event the event that caused the points change
 */
public void propertyChange(PropertyChangeEvent event) {
	revalidate();
}

/**
 * Sets the index.
 * @param i the new index
 * @see #getIndex()
 */
protected void setIndex(int i) {
	index = i;
}

}


